Principal Component Analysis (PCA) একটি ডাইমেনশনালিটি রিডাকশন টেকনিক যা উচ্চ মাত্রিক ডেটাকে কম মাত্রিক স্পেসে রূপান্তর করে। এটি বিশেষভাবে বড় ডেটাসেটের জন্য ব্যবহৃত হয়, যেখানে অনেক ফিচার থাকে, কিন্তু অনেক ফিচারের মধ্যে অপ্রয়োজনীয় বা অতিরিক্ত তথ্য থাকে। PCA ইনপুট ডেটার মধ্যে সর্বাধিক ভেরিয়েশন ধরতে সক্ষম, যা মডেল প্রশিক্ষণের সময় গুরুত্বপূর্ণ ফিচারগুলিকে সংরক্ষণ করতে সহায়ক।
এখানে PCA-এর মাধ্যমে মডেল ট্রেনিং এবং টেস্টিং কিভাবে করা যায় তা ব্যাখ্যা করা হলো।
PCA মডেল Training এবং Testing
PCA মডেলটি মূলত ইনপুট ডেটার ডাইমেনশন কমাতে ব্যবহৃত হয়, কিন্তু PCA এর ট্রেনিং এবং টেস্টিং প্রক্রিয়া কিছুটা আলাদা। PCA এর ক্ষেত্রে, ডেটার কমপোনেন্টগুলিকে প্রশিক্ষণ এবং পরীক্ষণের জন্য আলাদা করা হয়।
ধাপ 1: PCA মডেল ট্রেনিং
PCA এর মডেল ট্রেনিং ডেটাতে মডেলের প্রধান কম্পোনেন্ট (principal components) বের করার মাধ্যমে সম্পন্ন হয়।
- ডেটা প্রিপ্রসেসিং:
ডেটার স্কেলিং বা স্ট্যান্ডার্ডাইজেশন খুব গুরুত্বপূর্ণ, কারণ PCA ইনপুট ভেরিয়েবলের স্কেল থেকে প্রভাবিত হতে পারে। তাই ডেটাকে স্ট্যান্ডার্ডাইজ করা উচিত, যাতে সমস্ত ফিচারের গড় 0 এবং স্ট্যান্ডার্ড ডেভিয়েশন 1 হয়। - PCA অ্যাপ্লাই করা:
PCA ফিচারগুলো খুঁজে বের করে, যা ডেটার সর্বোচ্চ ভেরিয়েশন বোঝায় এবং সেই কম্পোনেন্টগুলিকে সিলেক্ট করা হয়। এখানে সবচেয়ে বেশি ভেরিয়েশন বা বৈশিষ্ট্যবহুল কম্পোনেন্টগুলো নির্বাচিত হয়। - ট্রেনিং ডেটায় PCA ফিট করা:
PCA মডেলটি ট্রেনিং ডেটায় ফিট করা হয় এবং প্রধান উপাদানগুলো বের করা হয়।
ধাপ 2: PCA মডেল Testing
Testing ডেটা দিয়ে মডেলটি পরীক্ষা করা হয়, যেখানে PCA ট্রান্সফর্মেশন প্রয়োগ করা হয় এবং সঠিক পরিমাণ কম্পোনেন্ট বের করা হয়।
- Testing ডেটায় PCA ট্রান্সফর্ম করা:
পরীক্ষার ডেটাতে প্রধান কম্পোনেন্টগুলির উপর ভিত্তি করে ডেটাকে রূপান্তরিত করা হয়। - PCA আউটপুট:
মডেলটি টেস্ট ডেটাতে বৈশিষ্ট্যগুলির প্রকৃত আউটপুট পূর্বাভাস করতে ব্যবহৃত হয়।
PCA মডেল ট্রেনিং এবং টেস্টিং এর কোড উদাহরণ
এখানে PCA প্রয়োগ করার জন্য একটি Python কোড উদাহরণ দেওয়া হলো, যেখানে sklearn লাইব্রেরি ব্যবহার করা হয়েছে।
ধাপ 1: ডেটা প্রস্তুত করা এবং PCA মডেল ট্রেনিং
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
# Iris ডেটাসেট লোড করা
data = load_iris()
X = data.data # ইনপুট বৈশিষ্ট্য
y = data.target # আউটপুট শ্রেণি
# ডেটাকে ট্রেন এবং টেস্ট সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# ডেটা স্কেলিং করা
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# PCA মডেল তৈরি এবং প্রশিক্ষণ
pca = PCA(n_components=2) # 2 প্রধান কম্পোনেন্ট নির্বাচন করা
X_train_pca = pca.fit_transform(X_train_scaled)
print(f"Explained Variance Ratio: {pca.explained_variance_ratio_}")
- স্কেলিং: প্রথমে StandardScaler ব্যবহার করে ডেটা স্কেলিং করা হয়। PCA-র জন্য এটি খুব গুরুত্বপূর্ণ, কারণ স্কেল করা ডেটার উপর ভিত্তি করে PCA ভালোভাবে কাজ করে।
- PCA ফিট করা:
fit_transformমেথড ব্যবহার করে, PCA মডেলটি ট্রেনিং ডেটায় ফিট করা হয় এবং প্রয়োজনীয় কম্পোনেন্টগুলির মাধ্যমে ডেটাকে রূপান্তর করা হয়। - Explained Variance: PCA-এর
explained_variance_ratio_এর মাধ্যমে, আমরা কতটুকু ভেরিয়েশন প্রথম দুটি কম্পোনেন্ট দ্বারা ব্যাখ্যা হচ্ছে তা দেখতে পারি।
ধাপ 2: Testing ডেটাতে PCA প্রয়োগ
# Testing ডেটায় PCA ট্রান্সফর্ম করা
X_test_pca = pca.transform(X_test_scaled)
# প্রথম দুটি প্রধান কম্পোনেন্টে ট্রান্সফর্ম করা ডেটা
print("Transformed Test Data:\n", X_test_pca)
- PCA ট্রান্সফর্ম:
transformমেথড ব্যবহার করে, PCA-কে টেস্ট ডেটার উপর প্রয়োগ করা হয়। এটি মডেলটি প্রশিক্ষণ সময়ে পাওয়া কম্পোনেন্টগুলির উপর ভিত্তি করে টেস্ট ডেটাকে রূপান্তরিত করে।
মডেল প্রশিক্ষণ এবং পূর্বাভাস:
এখন যে কোনো মডেল (যেমন, কেএনএন, SVM, বা লজিস্টিক রিগ্রেশন) ব্যবহার করে PCA ট্রান্সফর্ম করা ডেটা দিয়ে মডেল প্রশিক্ষণ এবং পূর্বাভাস করা যেতে পারে।
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# KNN মডেল তৈরি এবং প্রশিক্ষণ
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train_pca, y_train)
# পূর্বাভাস করা
y_pred = knn.predict(X_test_pca)
# একুরেসি মাপা
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
- মডেল প্রশিক্ষণ: PCA ট্রান্সফর্ম করা ট্রেনিং ডেটা ব্যবহার করে, আমরা K-Nearest Neighbors (KNN) মডেলটি প্রশিক্ষণ করেছি।
- পূর্বাভাস: টেস্ট ডেটায় পূর্বাভাস তৈরি করা হয়েছে এবং একুরেসি মাপা হয়েছে।
সারাংশ
- PCA মডেল ট্রেনিং এবং টেস্টিং দুইটি পর্যায়ে করা হয়: প্রথমে পাঠানো ডেটা নিয়ে মডেলটি প্রশিক্ষিত হয় এবং তারপর টেস্ট ডেটা দিয়ে পরীক্ষা করা হয়।
- PCA এর মাধ্যমে ডেটার মাত্রা কমানো হয়, যাতে মডেলটি কম্পিউটেশনালভাবে আরও দ্রুত এবং কার্যকর হয়, এবং এটি ডেটার মধ্যে সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্যগুলো সনাক্ত করে।
- স্কেলিং এবং ট্রান্সফর্মেশন দুটি গুরুত্বপূর্ণ পদক্ষেপ, যেগুলি মডেল প্রশিক্ষণ এবং পরীক্ষণ সঠিকভাবে পরিচালিত করতে সাহায্য করে।
Read more